some xrandr fixes
authorMatthias Clasen <matthiasc@src.gnome.org>
Wed, 18 Feb 2009 23:12:26 +0000 (23:12 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Wed, 18 Feb 2009 23:12:26 +0000 (23:12 +0000)
svn path=/trunk/; revision=22370

ChangeLog
gdk/x11/gdkscreen-x11.c

index adc882137cc618258eef4bc439bcc4679b60c5a9..6a234b3539da65f6cce82ab75343b1784918dfd7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-02-18  Matthias Clasen  <mclasen@redhat.com>
+
+       * gdk/x11/gdkscreen-x11.c (init_randr13): Ignore disconnected outputs,
+       and fill in name and physical dimensions.
+
 2009-02-18  Sven Neumann  <sven@gimp.org>
 
        Bug 533456 – Memory leak when window is destroyed
index e13c7a61c2553ab69077430033bab686b8448964..1902a350a09eb57ca4b3e65de79506e55f876bed 100644 (file)
@@ -695,6 +695,9 @@ init_randr13 (GdkScreen *screen)
       /* Non RandR1.2 X driver have output name "default" */
       randr12_compat |= !g_strcmp0(output->name, "default");
 
+      if (output->connection == RR_Disconnected)
+        continue;
+
       if (output->crtc)
        {
          GdkX11Monitor monitor;
@@ -705,11 +708,11 @@ init_randr13 (GdkScreen *screen)
          monitor.geometry.width = crtc->width;
          monitor.geometry.height = crtc->height;
 
-         /* FIXME: fill this out properly - need EDID parser */
          monitor.output = resources->outputs[i];
-         monitor.width_mm = -1;
-         monitor.height_mm = -1;
-         monitor.output_name = NULL;
+         monitor.width_mm = output->mm_width;
+         monitor.height_mm = output->mm_height;
+         monitor.output_name = g_strdup (output->name);
+         /* FIXME: need EDID parser */
          monitor.manufacturer = NULL;
 
          g_array_append_val (monitors, monitor);
@@ -995,7 +998,8 @@ _gdk_x11_screen_size_changed (GdkScreen *screen,
     return;
 
   _gdk_x11_screen_process_monitors_change (screen);
-  g_signal_emit_by_name (screen, "size_changed");
+
+  g_signal_emit_by_name (screen, "size-changed");
 }
 
 void
@@ -1003,7 +1007,7 @@ _gdk_x11_screen_process_monitors_change (GdkScreen *screen)
 {
   init_multihead (screen);
 
-  g_signal_emit_by_name (screen, "monitors_changed");
+  g_signal_emit_by_name (screen, "monitors-changed");
 }
 
 void